
/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

分布式云物理服务器
分布式云物理服务器相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

#import <Foundation/Foundation.h>

#import <JDCloudOCSDKEdcps/EdcpsExecutor.h>


/// 修改分布式云物理服务器部分信息，包括名称、描述
@implementation  EdcpsModifyInstanceExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/instances/{instanceId}:modifyInstance";
    return self;
}
@end

/// 解绑弹性公网IP
   /// 
@implementation  EdcpsDisassociateElasticIpExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:disassociateElasticIp";
    return self;
}
@end

/// 查询弹性公网IP列表&lt;br/&gt;
   /// 支持分页查询，默认每页20条&lt;br/&gt;
   /// 
@implementation  EdcpsDescribeElasticIpsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/elasticIps";
    return self;
}
@end

/// 查询分布式云物理服务器支持的操作系统
@implementation  EdcpsDescribeOSExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/os";
    return self;
}
@end

/// 查询分布式云物理服务器实例类型
@implementation  EdcpsDescribeDeviceTypesExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/deviceTypes";
    return self;
}
@end

/// 删除别名IP
@implementation  EdcpsDeleteAliasIpExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/aliasIps/{aliasIpId}";
    return self;
}
@end

/// 修改弹性公网IP带宽
   /// 
@implementation  EdcpsModifyElasticIpBandwidthExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/elasticIps/{elasticIpId}:modifyElasticIpBandwidth";
    return self;
}
@end

/// 查询单个分布式云物理服务器已安装的RAID信息，包括系统盘RAID信息和数据盘RAID信息
@implementation  EdcpsDescribeInstanceRaidExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}:describeInstanceRaid";
    return self;
}
@end

/// 删除私有网络
   /// 
@implementation  EdcpsDeleteVpcExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/vpcs/{vpcId}";
    return self;
}
@end

/// 查询子网详情
@implementation  EdcpsDescribeSubnetExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/subnets/{subnetId}";
    return self;
}
@end

/// 查询别名IP列表
@implementation  EdcpsDescribeAliasIpsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/aliasIps";
    return self;
}
@end

/// 查询链路类型列表
@implementation  EdcpsDescribeLineTypesExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/lineTypes";
    return self;
}
@end

/// 查询密钥对列表
@implementation  EdcpsDescribeKeypairsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/keypairs";
    return self;
}
@end

/// 查询密钥对详情
@implementation  EdcpsDescribeKeypairExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/keypairs/{keypairId}";
    return self;
}
@end

/// 绑定弹性公网IP
   /// 
@implementation  EdcpsAssociateElasticIpExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:associateElasticIp";
    return self;
}
@end

/// 查询次要CIDR列表
@implementation  EdcpsDescribeSecondaryCidrsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/secondaryCidrs";
    return self;
}
@end

/// 创建一台或多台指定配置的分布式云物理服务器&lt;br/&gt;
   /// - 地域与可用区&lt;br/&gt;
   ///   - 调用接口（queryEdCPSRegions）获取分布式云物理服务器支持的地域与可用区&lt;br/&gt;
   /// - 实例类型&lt;br/&gt;
   ///   - 调用接口（describeDeviceTypes）获取物理实例类型列表&lt;br/&gt;
   ///   - 不能使用已下线、或已售馨的实例类型&lt;br/&gt;
   /// - 操作系统&lt;br/&gt;
   ///   - 可调用接口（describeOS）获取分布式云物理服务器支持的操作系统列表&lt;br/&gt;
   /// - 存储&lt;br/&gt;
   ///   - 数据盘多种RAID可选，可调用接口（describeDeviceRaids）获取服务器支持的RAID列表&lt;br/&gt;
   /// - 网络&lt;br/&gt;
   ///   - 网络类型目前支持vpc&lt;br/&gt;
   ///   - 线路目前支持联通un、电信ct、移动cm&lt;br/&gt;
   ///   - 支持不启用外网，如果启用外网，带宽范围[1,200] 单位Mbps&lt;br/&gt;
   /// - 其他&lt;br/&gt;
   ///   - 购买时长，可按年或月购买：月取值范围[1,9], 年取值范围[1,3]&lt;br/&gt;
   ///   - 密码设置参考公共参数规范&lt;br/&gt;
   /// 
@implementation  EdcpsCreateInstancesExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances";
    return self;
}
@end

/// 查询可用的私有IP列表
@implementation  EdcpsDescribeAvailablePrivateIpExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}/availablePrivateIps";
    return self;
}
@end

/// 重置分布式云物理服务器密码
   /// 
@implementation  EdcpsResetPasswordExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:resetPassword";
    return self;
}
@end

/// 查询弹性公网IP详情
@implementation  EdcpsDescribeElasticIpExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/elasticIps/{elasticIpId}";
    return self;
}
@end

/// 删除密钥对
@implementation  EdcpsDeleteKeypairsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/keypairs/{keypairId}";
    return self;
}
@end

/// 对单台分布式云物理服务器执行关机操作，只能停止running状态的服务器 [MFA enabled]
@implementation  EdcpsStopInstanceExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:stopInstance";
    return self;
}
@end

/// 查询分布式分布式云物理服务器地域列表
@implementation  EdcpsDescribeEdCPSRegionsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/edgeRegions";
    return self;
}
@end

/// 创建密钥对
@implementation  EdcpsCreateKeypairsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/keypairs";
    return self;
}
@end

/// 查询私有网络列表
@implementation  EdcpsDescribeVpcsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/vpcs";
    return self;
}
@end

/// 查询私有网络详情
@implementation  EdcpsDescribeVpcExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/vpcs/{vpcId}";
    return self;
}
@end

/// 批量查询分布式云物理服务器详细信息&lt;br/&gt;
   /// 支持分页查询，默认每页20条&lt;br/&gt;
   /// 
@implementation  EdcpsDescribeInstancesExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances";
    return self;
}
@end

/// 修改子网
@implementation  EdcpsModifySubnetExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/subnets/{subnetId}";
    return self;
}
@end

/// 删除单台云物理物理服务器，只能删除运行running、停止stopped、错误error状态的服务器&lt;br/&gt;
   /// 不能删除没有计费信息的服务器&lt;br/&gt;
   /// 
@implementation  EdcpsDeleteInstanceExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/instances/{instanceId}";
    return self;
}
@end

/// 查询单个分布式云物理服务器硬件监控信息
@implementation  EdcpsDescribeInstanceStatusExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}:describeInstanceStatus";
    return self;
}
@end

/// 删除弹性公网IP
   /// 
@implementation  EdcpsDeleteelasticIpExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/elasticIps/{elasticIpId}";
    return self;
}
@end

/// 查询子网列表
@implementation  EdcpsDescribeSubnetsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/subnets";
    return self;
}
@end

/// 重启单台分布式云物理服务器，只能重启running状态的服务器 [MFA enabled]
@implementation  EdcpsRestartInstanceExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:restartInstance";
    return self;
}
@end

/// 查询弹性公网IP库存
@implementation  EdcpsDescribeElasticIpStockExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/elasticIpStock";
    return self;
}
@end

/// 导入密钥对
@implementation  EdcpsImportKeypairsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/keypairs:import";
    return self;
}
@end

/// 对单台分布式云物理服务器执行开机操作，只能启动stopped状态的服务器
@implementation  EdcpsStartInstanceExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:startInstance";
    return self;
}
@end

/// 添加次要CIDR
@implementation  EdcpsCreateSecondaryCidrExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/secondaryCidrs";
    return self;
}
@end

/// 查询分布式云物理服务器库存
@implementation  EdcpsDescribeDeviceStockExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/deviceStock";
    return self;
}
@end

/// 查询单台分布式云物理服务器详细信息
@implementation  EdcpsDescribeInstanceExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}";
    return self;
}
@end

/// 查询分布式云物理服务器名称
@implementation  EdcpsDescribeInstanceNameExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}:describeInstanceName";
    return self;
}
@end

/// 创建子网
@implementation  EdcpsCreateSubnetExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/subnets";
    return self;
}
@end

/// 添加别名IP
@implementation  EdcpsCreateAliasIpExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/aliasIps";
    return self;
}
@end

/// 修改私有网络
   /// 
@implementation  EdcpsModifyVpcExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/vpcs/{vpcId}";
    return self;
}
@end

/// 查询某种实例类型的分布式云物理服务器支持的RAID类型，可查询系统盘RAID类型和数据盘RAID类型
@implementation  EdcpsDescribeDeviceRaidsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/raids";
    return self;
}
@end

/// 创建私有网络
@implementation  EdcpsCreateVpcExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/vpcs";
    return self;
}
@end

/// 重装分布式云物理服务器，只能重装stopped状态的服务器&lt;br/&gt;
   /// - 可调用接口（describeOS）获取分布式云物理服务器支持的操作系统列表
   ///  [MFA enabled]
@implementation  EdcpsReinstallInstanceExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:reinstallInstance";
    return self;
}
@end

/// 删除子网
@implementation  EdcpsDeleteSubnetExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/subnets/{subnetId}";
    return self;
}
@end

/// 申请弹性公网IP
   /// 
@implementation  EdcpsApplyElasticIpsExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/elasticIps";
    return self;
}
@end

/// 删除次要CIDR
@implementation  EdcpsDeleteSecondaryCidrExecutor

-(id) initWithJDCloudClient:(EdcpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/secondaryCidrs/{secondaryCidrId}";
    return self;
}
@end
